import pandas as pd


def 拆分面积小区(company):
    df = pd.read_csv(fr"D:\fttr\{company}面积.csv", dtype=str)

    # 第一次尝试使用镇名后的正则表达式匹配
    pattern1 = r'.*镇(.*?)[0-9]+号楼'
    df['小区简称'] = df['地址'].str.extract(pattern1)

    # 找出第一次匹配为 NaN 的行
    mask = df['小区简称'].isna()

    # 对第一次未匹配到的行使用区名后的正则表达式重新匹配
    pattern2 = fr'{company}区(.*?)[0-9]+号楼'
    df.loc[mask, '小区简称'] = df.loc[mask, '地址'].str.extract(pattern2).values

    df['房号'] = df['房号'].str.replace('-', '单元')
    pattern = r'(?:(\d+)单元|单元|^.*?)(\d+)$'
    # 提取单元号和室号
    df[['单元号', '室号']] = df['房号'].str.extract(pattern)

    df[['楼号']] = df['地址'].str.extract(r'(\d+)号楼')

    # 将结果保存到新的 CSV 文件
    df.to_csv(fr'D:\fttr\{company}面积.csv', index=False)


def 匹配面积(company):
    df = pd.read_csv(fr'D:\fttr\{company}面积.csv', usecols=['小区简称', '用途', '面积', '室号', '楼号', '单元号'],
                     dtype=str)

    df2 = pd.read_csv(f'/fttr/{company}推荐.csv', dtype=str)

    df = df2.merge(df, on=['小区简称', '楼号', '室号', '单元号'], how='left')
    df.to_csv(f'/fttr/{company}推荐.csv', index=False)


if __name__ == '__main__':
    company = '大兴'
    # 拆分面积小区(company)
    匹配面积(company)
